/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.general.be;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import org.cip.esymons.colegiatura.be.Colegiado;

/**
 *
 * @author ADMINISTRADOR
 */
@Entity
@Table(name = "gen_directivos")
//@NamedQueries({@NamedQuery(name = "Directivos.findAll", query = "SELECT d FROM Directivos d"), @NamedQuery(name = "Directivos.findByDirCodigo", query = "SELECT d FROM Directivos d WHERE d.dirCodigo = :dirCodigo"), @NamedQuery(name = "Directivos.findByDirfechaInicio", query = "SELECT d FROM Directivos d WHERE d.dirfechaInicio = :dirfechaInicio"), @NamedQuery(name = "Directivos.findByDirfechaFin", query = "SELECT d FROM Directivos d WHERE d.dirfechaFin = :dirfechaFin")})
public class Directivos implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "dir_codigo")
    private Integer dirCodigo;
    @Column(name = "dir_fechaInicio")
    @Temporal(TemporalType.DATE)
    private Date dirfechaInicio;
    @Column(name = "dir_fechaFin")
    @Temporal(TemporalType.DATE)
    private Date dirfechaFin;
    @Basic(optional = false)
    @Column(name = "dir_activo")
    private boolean dirActivo;

    @JoinColumn(name = "col_codigo", referencedColumnName = "col_codigo")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Colegiado colCodigo;
    @JoinColumn(name = "car_codigo", referencedColumnName = "car_codigo")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Cargo carCodigo;

    public Directivos() {
    }

    public Directivos(Integer dirCodigo) {
        this.dirCodigo = dirCodigo;
    }

    public boolean getDirActivo() {
        return dirActivo;
    }

    public void setDirActivo(boolean dirActivo) {
        this.dirActivo = dirActivo;
    }

    public Integer getDirCodigo() {
        return dirCodigo;
    }

    public void setDirCodigo(Integer dirCodigo) {
        this.dirCodigo = dirCodigo;
    }

    public Date getDirfechaInicio() {
        return dirfechaInicio;
    }

    public void setDirfechaInicio(Date dirfechaInicio) {
        this.dirfechaInicio = dirfechaInicio;
    }

    public Date getDirfechaFin() {
        return dirfechaFin;
    }

    public void setDirfechaFin(Date dirfechaFin) {
        this.dirfechaFin = dirfechaFin;
    }

    public Colegiado getColCodigo() {
        return colCodigo;
    }

    public void setColCodigo(Colegiado colCodigo) {
        this.colCodigo = colCodigo;
    }

    public Cargo getCarCodigo() {
        return carCodigo;
    }

    public void setCarCodigo(Cargo carCodigo) {
        this.carCodigo = carCodigo;
    }

    public String getPeriodo(){

        String periodo = "";
        SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy");
        SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");

        return periodo = sdf1.format(dirfechaInicio)+ "  -  "+sdf2.format(dirfechaFin);
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (dirCodigo != null ? dirCodigo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Directivos)) {
            return false;
        }
        Directivos other = (Directivos) object;
        if ((this.dirCodigo == null && other.dirCodigo != null) || (this.dirCodigo != null && !this.dirCodigo.equals(other.dirCodigo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "org.cip.esymons.general.be.Directivos[dirCodigo=" + dirCodigo + "]";
    }

   @Transient
   ColegiadoEspecialidad colegiadoEspecialidad;

    public ColegiadoEspecialidad getColegiadoEspecialidad() {
        return colegiadoEspecialidad;
    }

    public void setColegiadoEspecialidad(ColegiadoEspecialidad colegiadoEspecialidad) {
        this.colegiadoEspecialidad = colegiadoEspecialidad;
    }

    @Transient
    private boolean seleccion;

    public boolean getSeleccion() {
        return seleccion;
    }

    public void setSeleccion(boolean seleccion) {
        this.seleccion = seleccion;
    }

    @Transient
    private boolean email;

    public boolean getEmail() {
        return email;
    }

    public void setEmail(boolean email) {
        this.email = email;
    }

    @Transient
    private boolean emailCIP;

    public boolean getEmailCIP() {
        return emailCIP;
    }

    public void setEmailCIP(boolean emailCIP) {
        this.emailCIP = emailCIP;
    }

}
